/*
Copyright (C) 2013 Matthew Netsch

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
*/

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "passman.h"
#include "passtool.h"
#include "passview.h"
#include "passmodel.h"
#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void setName(char *name);
    void setKey(char *key);

public slots:
    void notify();
    void newDoc();
    bool saveDoc();
    void deleteDoc();
    void openDoc();
    
private:
    PassTool                    *toolbar;
    PassView                    *passview;
    PassModel                   *passmodel;
    PassMan::IDatabase          *saved_passmodel;
    Ui::MainWindow              *ui;
    PassMan::IDatabaseManager   *dbMan;
    bool                         is_untitled;
    bool                         is_unsaved;
    char                        *doc_name;
    char                        *doc_key;

    void destroyDoc();
    void createDoc(char *name, char *key, bool untitled);
    bool checkSave();
};

#endif // MAINWINDOW_H
